package com.niit.white_box.mapper;

import com.niit.white_box.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

@Repository
@Mapper
public interface UserMapper {

    User findByPhoneAndPassword(@Param("phone") String phone, @Param("password") String password);
    User findByEmailAndPassword(@Param("email") String email, @Param("password") String password);
    User findByPhone(String phone);
    User findByEmail(String email);
    void insertUser(User user);
    int getMaxGuestNumber();
    int updatePasswordByPhone(@Param("phone") String phone, @Param("password") String password);
    int updatePasswordById(@Param("id") int id, @Param("password") String password);

    // 分页查询用户与总数（支持多条件）
    java.util.List<User> listUsers(@Param("offset") int offset, @Param("size") int size,
            @Param("username") String username, @Param("nickname") String nickname,
            @Param("phone") String phone, @Param("status") String status,
            @Param("startDate") String startDate, @Param("endDate") String endDate);
    int countUsers(@Param("username") String username, @Param("nickname") String nickname,
            @Param("phone") String phone, @Param("status") String status,
            @Param("startDate") String startDate, @Param("endDate") String endDate);
    
    // 根据ID查找用户
    User findById(@Param("id") int id);
    
    // 更新用户信息
    int updateUser(User user);
    
    // 删除用户
    int deleteUser(@Param("id") int id);
    
    // 搜索用户（支持账号、手机号搜索）
    java.util.List<User> searchUsers(@Param("keyword") String keyword, @Param("offset") int offset, @Param("size") int size);
    
    // 统计搜索结果总数
    int countSearchUsers(@Param("keyword") String keyword);
}